package com.example.myapplication.kotlin

class Bicycle {
    fun run() {
        println("可以骑行")
    }

    fun boom() {
        println("胎炸了")
    }

    fun fix() {
        println("修理自行车")
    }
}

class EBicycle {
    var name: String = ""
    var runTime: Int = 0
    var speed: String = "25km"
    var price: Int = 0
}

fun main() {
    // codeReview
    /*    val eBicycle = EBicycle().apply {
            name = "小牛电动车"
            runTime = 100
            speed = "25km"
            price = 3999
        }*/
    val eBicycle = EBicycle()
    with(eBicycle) {
        name = "小刀电动车"
    }
//    eBicycle.name = "九号电动车"
    println(eBicycle.name)

    // run 作用域
//    var num = 998;
//    val result = run {
//        var num = 10
//        num++;
//        num--;
//        println(num) // ?10
//        num // 返回值 可以省略return不写
//    }
//
//    println(result)// ? 10
//    println(num) // ? 998

    // ----------------with 对象上下文----------------
//    val bicycle = Bicycle()
//    // 通过with，可以简化对象的调用，不用写一堆 对象.
//    with(bicycle) {
//        run()
//        boom()
//        fix()
//        boom()
//    }
//    // 等同于
//    bicycle.run()
//    bicycle.boom()
//    bicycle.fix()
//    bicycle.boom()


    // ----------------let 一般结合? 进行空安全限制，等同于 if的非空判断----------------
//    val money: Int? = null
//    val money: Int? = 100
//
//    money?.let {
//        println("花钱~~~")
//        println(it)
//    }
//    if (money != null) {
//        println("消费~")
//    }
}